import micromark from 'micromark';
import { readdirSync, readFileSync } from 'fs';
import { join } from 'path'
import { NavBar } from '../../components/navbar';
import { CenteredPage, PageTitle } from '../../components/page';
import { Vierkant } from '../../components/ui';
export default function Post(props: {
post: string,
content: string,
tags: string
}) {
return
{props.post.replace(/_/g, " ")}
}
function parseTags(fileContent: string) {
var fileAsArr = fileContent.split("\n");
var lastLine = fileAsArr[fileAsArr.length-1]
if (!lastLine.startsWith(";tags:")) return {
tags: [],
result: ""
}
var tags = lastLine.replace(";tags:", "").trim().split(" ");
fileAsArr.pop()
var result = fileAsArr.join("\n").trim()
return { tags, result }
}
export function getStaticProps(props: {params: { post: string }}) {
var filename = join("news/", props.params.post + ".md")
var filecontent = readFileSync(filename).toString().trim()
var parsed = parseTags(filecontent);
var content = micromark(parsed.result)
return {
props: {
post: props.params.post,
content,
tags: parsed.tags,
},
}
}
export function getStaticPaths() {
var files = readdirSync("news").filter(f => f.endsWith(".md"));
return {
paths: files.map((f) => {
return {
params: {
post: f.substr(0, f.length - 3)
}
}
}),
fallback: false,
}
}